package cn.broadsense.biz.domain;

import cn.broadsense.common.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 数据采集任务
 *
 * @TableName t_collect_data_task
 */
@TableName(value = "t_collect_data_task")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("数据采集任务数据")
public class CollectDataTask extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 175165210766664068L;
    /**
     * id
     */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty("id")
    private Long id;

    /**
     * 任务名称
     */
    @ApiModelProperty("任务名称")
    private String name;

    /**
     * 任务编码
     */
    @ApiModelProperty("任务编码")
    private String code;

    /**
     * 任务描述
     */
    @ApiModelProperty("任务描述")
    private String describeInfo;

    /**
     * 采集员用户id
     */
    @ApiModelProperty("采集员用户id")
    private Long collectUserId;

    /**
     * 采集员用户名称
     */
    @ApiModelProperty("采集员用户名称")
    private String collectUserName;

    /**
     * 采集人员区域id
     */
    @ApiModelProperty("采集人员区域id")
    private Long collectUserDeptId;

    /**
     * 采集人员区域名称
     */
    @ApiModelProperty("采集人员区域名称")
    private String collectUserDeptName;

    /**
     * 审核状态 1=待采集 2=待审核 3=已驳回 4=已通过 5=已关闭
     */
    @ApiModelProperty("审核状态 1=待采集 2=待审核 3=已驳回 4=已通过 5=已关闭")
    private Integer status;

    @ApiModelProperty("审核状态列表")
    @TableField(exist = false)
    private List<Integer> statusList;

    @ApiModelProperty("任务状态 1=待执行 2=执行中 3=已超时 ")
    private Integer taskStatus;

    /**
     * 驳回理由
     */
    @ApiModelProperty("驳回理由")
    private String reasonRejection;

    /**
     * 驳回时间
     */
    @ApiModelProperty("驳回时间")
    private Date rejectTime;

    /**
     * 审核时间
     */
    @ApiModelProperty("审核时间")
    private Date reviewTime;

    /**
     * 提交时间
     */
    @ApiModelProperty("提交时间")
    private Date submissionTime;


    @ApiModelProperty("任务结束时间")
    private Date endTime;

    @ApiModelProperty("部门id")
    private Long deptId;

    @TableField(exist = false)
    @ApiModelProperty("查询类型 1=任务派发 2=审核列表")
    private Integer queryType;

    @TableField(exist = false)
    private String channelName;
    @TableField(exist = false)
    private String channelSn;
    @JsonIgnore
    @TableField(exist = false)
    private List<Long> taskIds;

    @ApiModelProperty("已读状态 0=未读 1=已读 ")
    private Integer readStatus;

    @ApiModelProperty("查询开始时间")
    @TableField(exist = false)
    private Date queryStartTime;

    @ApiModelProperty("查询结束时间")
    @TableField(exist = false)
    private Date queryEndTime;

}
